﻿Public Class frmRegistroaspirante
    Private blnEditaregistro As Boolean = False
    Private intIdaspirante As Integer
    Private intIdpersona As Integer


    Private Sub frmRegistroaspirante_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.cargaDatos()
    End Sub

    Private Sub switchObjeto(ByVal blnEditar As Boolean)
        Me.cmbTipodocumento.Visible = blnEditar
        Me.dtpFechaexpedicion.Enabled = blnEditar
        Me.cmbLugarexpedicion.Visible = blnEditar
        Me.dtpFechanacimiento.Enabled = blnEditar
        Me.cmbLugarnacimiento.Visible = blnEditar
        Me.cmbGenero.Visible = blnEditar
        Me.cmbGruposanguineo.Visible = blnEditar
        Me.cmbRh.Visible = blnEditar
        Me.cmbGradoescolaridad.Visible = blnEditar
        Me.cmbOcupacion.Visible = blnEditar
        Me.cmbEstadocivil.Visible = blnEditar
        Me.cmbEpsarp.Visible = blnEditar
        Me.cmbUbicacionresidencia.Visible = blnEditar



        

        Me.txtTipodocumento.Visible = Not blnEditar
        Me.txtNumerodocumento.ReadOnly = Not blnEditar
        Me.txtFechaexpedicion.Visible = Not blnEditar
        Me.txtLugarexpedicion.Visible = Not blnEditar
        Me.txtNombre.Visible = Not blnEditar
        Me.txtApellido.Visible = Not blnEditar

        Me.txtNombre1.Visible = blnEditar
        Me.txtNombre2.Visible = blnEditar
        Me.txtApellido1.Visible = blnEditar
        Me.txtApellido2.Visible = blnEditar

        Me.txtFechanacimiento.Visible = Not blnEditar
        Me.txtLugarnacimiento.Visible = Not blnEditar
        Me.txtGenero.Visible = Not blnEditar
        Me.txtGruposanguineo.Visible = Not blnEditar
        Me.txtGradoescolaridad.Visible = Not blnEditar
        Me.txtOcupacion.Visible = Not blnEditar
        Me.txtEstadocivil.Visible = Not blnEditar
        Me.txtEpsarp.Visible = Not blnEditar
        Me.txtTelefono.ReadOnly = Not blnEditar
        Me.txtMovil.ReadOnly = Not blnEditar
        Me.txtCorreoelectronico.ReadOnly = Not blnEditar
        Me.txtUbicacionresidencia.Visible = Not blnEditar
        Me.txtNombreacompañante.ReadOnly = Not blnEditar
        Me.txtTelefonoacompañante.ReadOnly = Not blnEditar
        Me.txtSenialesparticulares.ReadOnly = Not blnEditar
        Me.txtObservacion.ReadOnly = Not blnEditar


        'Dim dtFecha As Date
        'dtFecha = Me.txtFechanacimiento.Text
        'Me.dtpFechanacimiento.Value = dtFecha.ToString

        'dtFecha = Me.txtFechaexpedicion.Text
        'Me.dtpFechaexpedicion.Value = dtFecha.ToString

    End Sub

    Private Sub cargaDatos()
        If mdlIntegracion.lngIdProceso <> 0 And mdlIntegracion.intIdaspirante <> 0 Then
            Dim dstRecord As New DataSet
            Dim arrRsAspirante As Array
            Dim arrRsDatoaspirante As Array
            Dim idDepartamento As String, nmDepartamento As String, dtFecha As Date

            dstRecord.Tables.Add("Persona")
            dstRecord.Tables.Add("Aspirante")
            dstRecord.Tables.Add("Procesotramite")

            'Datos Generales del aspirante
            mdlCRUD.loadRecord(dstRecord, "Persona", "persona", "persona_id = '" & mdlIntegracion.intIdaspirante & "'", Nothing)

            arrRsAspirante = dstRecord.Tables("Persona").Rows(0).ItemArray.ToArray

            Me.intIdpersona = arrRsAspirante(0).ToString
            Me.txtNumerodocumento.Text = arrRsAspirante(1).ToString
            Me.txtTipodocumento.Text = mdlFunciones.getReferencia("tipodocumento", "tipodocumento_id", arrRsAspirante(2).ToString, 1)
            Me.txtNombre.Text = arrRsAspirante(3).ToString & " " & arrRsAspirante(4).ToString
            Me.txtApellido.Text = arrRsAspirante(5).ToString & " " & arrRsAspirante(6).ToString

            Me.txtNombre1.Text = arrRsAspirante(3).ToString
            Me.txtNombre2.Text = arrRsAspirante(4).ToString
            Me.txtApellido1.Text = arrRsAspirante(5).ToString
            Me.txtApellido2.Text = arrRsAspirante(6).ToString()

            dtFecha = arrRsAspirante(7)
            Me.txtFechanacimiento.Text = dtFecha.ToString("yyyy-MM-dd")
            Me.dtpFechanacimiento.Value = dtFecha.ToString
            Me.txtEdad.Text = mdlFunciones.getEdad(dtFecha)

            idDepartamento = mdlFunciones.getReferencia("ciudad", "ciudad_id", arrRsAspirante(8).ToString, 1)
            idDepartamento = mdlFunciones.getReferencia("ciudad", "ciudad_id", arrRsAspirante(8).ToString, 1)
            nmDepartamento = mdlFunciones.getReferencia("departamento", "departamento_id", idDepartamento, 1)
            Me.txtLugarnacimiento.Text = mdlFunciones.getReferencia("ciudad", "ciudad_id", arrRsAspirante(8).ToString, 2) & " (" & nmDepartamento & ")"
            Me.txtGruposanguineo.Text = mdlFunciones.getReferencia("tiposangre", "tiposangre_id", arrRsAspirante(9).ToString, 1) & mdlFunciones.getReferencia("rh", "rh_id", arrRsAspirante(10).ToString, 1)
            Me.txtGenero.Text = mdlFunciones.getReferencia("sexo", "sexo_id", arrRsAspirante(11).ToString, 1)

            dtFecha = arrRsAspirante(12)
            Me.txtFechaexpedicion.Text = dtFecha.ToString("yyyy-MM-dd")
            Me.dtpFechaexpedicion.Value = dtFecha.ToString

            idDepartamento = mdlFunciones.getReferencia("ciudad", "ciudad_id", arrRsAspirante(13).ToString, 1)
            nmDepartamento = mdlFunciones.getReferencia("departamento", "departamento_id", idDepartamento, 1)
            Me.txtLugarexpedicion.Text = mdlFunciones.getReferencia("ciudad", "ciudad_id", arrRsAspirante(13).ToString, 2) & " (" & nmDepartamento & ")"

            '0:          persona_id()
            '1:          persona_documento()
            '2:          tipodocumento_id()
            '3:          persona_prinombre()
            '4:          persona_segnombre()
            '5:          persona_priapellido()
            '6:          persona_segapellido()
            '7:          persona_fechanacimiento()
            '8:          persona_lugarnacimiento()
            '9:          tiposangre_id()
            '10:         rh_id()
            '11:         sexo_id()
            '12:         aspirante_fechaexpedicion()
            '13:         persona_lugarexpedicion()


            'Datos Basicos de registro del aspirante
            mdlCRUD.loadRecord(dstRecord, "Aspirante", "aspirante", "persona_id = '" & mdlIntegracion.intIdaspirante & "' And aspirante_numeroproceso = '" & mdlIntegracion.lngIdProceso & "'", Nothing)

            arrRsDatoaspirante = dstRecord.Tables("Aspirante").Rows(0).ItemArray.ToArray

            Me.intIdaspirante = arrRsDatoaspirante(0).ToString
            idDepartamento = mdlFunciones.getReferencia("ciudad", "ciudad_id", arrRsDatoaspirante(5).ToString, 1)
            nmDepartamento = mdlFunciones.getReferencia("departamento", "departamento_id", idDepartamento, 1)
            Me.txtUbicacionresidencia.Text = mdlFunciones.getReferencia("ciudad", "ciudad_id", arrRsDatoaspirante(5).ToString, 2) & " (" & nmDepartamento & ")"
            Me.txtDireccion.Text = arrRsDatoaspirante(6).ToString
            Me.txtCorreoelectronico.Text = arrRsDatoaspirante(7).ToString
            Me.txtGradoescolaridad.Text = mdlFunciones.getReferencia("nivelescolaridad", "nivelescolaridad_id", arrRsDatoaspirante(8).ToString, 1)
            Me.txtOcupacion.Text = mdlFunciones.getReferencia("ocupacion", "ocupacion_id", arrRsDatoaspirante(9).ToString, 1)
            Me.txtEstadocivil.Text = mdlFunciones.getReferencia("estadocivil", "estadocivil_id", arrRsDatoaspirante(10).ToString, 1)
            Me.txtMovil.Text = arrRsDatoaspirante(11).ToString
            Me.txtTelefono.Text = arrRsDatoaspirante(12).ToString
            Me.txtNombreacompañante.Text = arrRsDatoaspirante(13).ToString
            Me.txtTelefonoacompañante.Text = arrRsDatoaspirante(14).ToString
            Me.txtEpsarp.Text = mdlFunciones.getReferencia("epsarp", "epsarp_id", arrRsDatoaspirante(15).ToString, 1)
            Me.txtSenialesparticulares.Text = arrRsDatoaspirante(16).ToString
            Me.txtObservacion.Text = arrRsDatoaspirante(17).ToString

            '0:          aspirante_id()
            '1:          persona_id()
            '2:          aspirante_numeroproceso()
            '3:          aspirante_fecharegistro()
            '4:          aspitante_horaregistro()
            '5:          ciudad_residencia()
            '6:          aspirante_direccion()
            '7:          aspirante_correoelectronico()
            '8:          nivelescolaridad_id()
            '9:          ocupacion_id()
            '10:         estadocivil_id()
            '11:         aspirante_movil()
            '12:         aspirante_telefono()
            '13:         aspirante_nombreacompanante()
            '14:         aspirante_telefonoacompanante()
            '15:         epsarp_id()
            '16:         aspirante_senialesparticulares()
            '17:         aspirante_observacion()


            'Datos Basicos de registro del aspirante
            mdlCRUD.loadRecord(dstRecord, "Procesotramite", "vistaprocesotramite", "aspirante_id = '" & arrRsDatoaspirante(0) & "'", Nothing)

            'Lista de Tramites
            Me.dgvTramite.DataSource = dstRecord.Tables("Procesotramite")
            Me.dgvTramite.Columns(0).Visible = False
            Me.dgvTramite.Columns(1).Visible = False
            Me.dgvTramite.Columns(2).Visible = False
            Me.dgvTramite.Columns(4).Visible = False
            Me.dgvTramite.Columns(6).Visible = False
            Me.dgvTramite.Columns(8).Visible = False
            Me.dgvTramite.Columns(10).Visible = False

            Me.dgvTramite.Columns(3).HeaderText = "Categoria"
            Me.dgvTramite.Columns(5).HeaderText = "Tramite"
            Me.dgvTramite.Columns(7).HeaderText = "Servicio"
            Me.dgvTramite.Columns(9).HeaderText = "Objetivo"
            Me.dgvTramite.Columns(11).HeaderText = "Estado proceso"

            Me.dgvTramite.Columns(3).Width = 100
            Me.dgvTramite.Columns(5).Width = 150
            Me.dgvTramite.Columns(7).Width = 200
            Me.dgvTramite.Columns(9).Width = 150
            Me.dgvTramite.Columns(11).Width = 100


            Try
                Me.pcbFoto.Image = Image.FromFile(mdlHerramientas.strRutafotografia & "\fto" & arrRsAspirante(1).ToString & "_" & arrRsDatoaspirante(2).ToString & ".jpg")
                mdlFunciones.SetImage(Me.pcbFoto)
            Catch ex As Exception
            End Try
            
            Try
                Me.pcbHderecha.Image = Image.FromFile(mdlHerramientas.strRutahuelladerecha & "\hder" & arrRsAspirante(1).ToString & "_" & arrRsDatoaspirante(2).ToString & ".jpg")
                mdlFunciones.SetImage(Me.pcbHderecha)
            Catch ex As Exception
            End Try
            
            Try
                Me.pcbHizquierda.Image = Image.FromFile(mdlHerramientas.strRutahuellaizquierda & "\hizq" & arrRsAspirante(1).ToString & "_" & arrRsDatoaspirante(2).ToString & ".jpg")
                mdlFunciones.SetImage(Me.pcbHizquierda)
            Catch ex As Exception
            End Try
            

            mdlFunciones.setListas(cmbTipodocumento, "SELECT tipodocumento_id, tipodocumento_nombre FROM tipodocumento ORDER BY tipodocumento_abreviatura", arrRsAspirante(2).ToString)

            mdlFunciones.setListas(cmbLugarexpedicion, "SELECT ciudad.ciudad_id, departamento.departamento_nombre ||' - ' || ciudad.ciudad_nombre AS ciudad_nombre_dep FROM " & _
                         "ciudad INNER JOIN departamento ON departamento.departamento_id = ciudad.departamento_id ORDER BY departamento.departamento_nombre, ciudad.ciudad_nombre", arrRsAspirante(13).ToString)

            mdlFunciones.setListas(cmbLugarnacimiento, "SELECT ciudad.ciudad_id, departamento.departamento_nombre ||' - ' || ciudad.ciudad_nombre AS ciudad_nombre_dep FROM " & _
                         "ciudad INNER JOIN departamento ON departamento.departamento_id = ciudad.departamento_id ORDER BY departamento.departamento_nombre, ciudad.ciudad_nombre", arrRsAspirante(8).ToString)

            mdlFunciones.setListas(cmbGenero, "SELECT sexo.sexo_id, sexo.sexo_nombre FROM sexo ORDER BY sexo.sexo_nombre", arrRsAspirante(11).ToString)
            mdlFunciones.setListas(cmbGruposanguineo, "SELECT tiposangre.tiposangre_id, tiposangre.tiposangre_abreviatura FROM tiposangre ORDER BY tiposangre.tiposangre_abreviatura", arrRsAspirante(9).ToString)
            mdlFunciones.setListas(cmbRh, "SELECT rh.rh_id, rh.rh_abreviatura FROM rh ORDER BY rh.rh_abreviatura", arrRsAspirante(10).ToString)

            mdlFunciones.setListas(cmbGradoescolaridad, "SELECT nivelescolaridad.nivelescolaridad_id, nivelescolaridad.nivelescolaridad_nombre FROM nivelescolaridad ORDER BY nivelescolaridad.nivelescolaridad_nombre", arrRsDatoaspirante(8).ToString)
            mdlFunciones.setListas(cmbOcupacion, "SELECT ocupacion.ocupacion_id, ocupacion.ocupacion_nombre FROM ocupacion ORDER BY ocupacion.ocupacion_nombre", arrRsDatoaspirante(9).ToString)
            mdlFunciones.setListas(cmbEstadocivil, "SELECT estadocivil.estadocivil_id, estadocivil.estadocivil_nombre FROM estadocivil ORDER BY estadocivil.estadocivil_nombre", arrRsDatoaspirante(10).ToString)
            mdlFunciones.setListas(cmbEpsarp, "SELECT epsarp.epsarp_id, epsarp.epsarp_nombre FROM epsarp ORDER BY epsarp.epsarp_nombre", arrRsDatoaspirante(15).ToString)
            mdlFunciones.setListas(cmbUbicacionresidencia, "SELECT ciudad.ciudad_id, departamento.departamento_nombre ||' - ' || ciudad.ciudad_nombre AS ciudad_nombre_dep FROM " & _
                         "ciudad INNER JOIN departamento ON departamento.departamento_id = ciudad.departamento_id ORDER BY departamento.departamento_nombre, ciudad.ciudad_nombre", arrRsDatoaspirante(5).ToString)

        End If
    End Sub

    Private Sub btnEditar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditar.Click
        If Me.blnEditaregistro = False Then
            Me.switchObjeto(True)
            Me.blnEditaregistro = True
            Me.btnTerminar.Text = "Cancelar"
            Me.btnEditar.Text = "Guardar"
        Else
            Me.editaAspirante()

            If mdlCRUD.blnFlag = True Then
                Me.cargaDatos()
                Me.switchObjeto(False)
                Me.blnEditaregistro = False
                Me.btnTerminar.Text = "Terminar"
                Me.btnEditar.Text = "Editar"
            End If
        End If
    End Sub

    Private Sub btnTerminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTerminar.Click
        If Me.blnEditaregistro = False Then
            Me.Close()
        Else
            Me.switchObjeto(False)
            Me.blnEditaregistro = False
            Me.btnTerminar.Text = "Terminar"
            Me.btnEditar.Text = "Editar"
        End If
    End Sub

    Private Sub editaAspirante()
        Dim arrParametro() As String = {"persona_documento = " & IIf(Trim(Me.txtNumerodocumento.Text) <> "", "'" & Me.txtNumerodocumento.Text & "'", "null"),
                                        "tipodocumento_id = " & IIf(Trim(Me.cmbTipodocumento.SelectedValue.ToString) <> "", "'" & Me.cmbTipodocumento.SelectedValue.ToString & "'", "null"),
                                        "persona_prinombre = " & IIf(Trim(Me.txtNombre1.Text) <> "", "'" & Me.txtNombre1.Text & "'", "null"),
                                        "persona_segnombre = " & IIf(Trim(Me.txtNombre2.Text) <> "", "'" & Me.txtNombre2.Text & "'", "null"),
                                        "persona_priapellido = " & IIf(Trim(Me.txtApellido1.Text) <> "", "'" & Me.txtApellido1.Text & "'", "null"),
                                        "persona_segapellido = " & IIf(Trim(Me.txtApellido2.Text) <> "", "'" & Me.txtApellido2.Text & "'", "null"),
                                        "persona_fechanacimiento = " & IIf(Trim(Me.dtpFechanacimiento.Value.ToString("yyyy-MM-dd")) <> "", "'" & Me.dtpFechanacimiento.Value.ToString("yyyy-MM-dd") & "'", "null"),
                                        "persona_lugarnacimiento = " & IIf(Trim(Me.cmbLugarnacimiento.SelectedValue.ToString) <> "", "'" & Me.cmbLugarnacimiento.SelectedValue.ToString & "'", "null"),
                                        "tiposangre_id = " & IIf(Trim(Me.cmbGruposanguineo.SelectedValue.ToString) <> "", "'" & Me.cmbGruposanguineo.SelectedValue.ToString & "'", "null"),
                                        "rh_id = " & IIf(Trim(Me.cmbRh.SelectedValue.ToString) <> "", "'" & Me.cmbRh.SelectedValue.ToString & "'", "null"),
                                        "sexo_id = " & IIf(Trim(Me.cmbGenero.SelectedValue.ToString) <> "", "'" & Me.cmbGenero.SelectedValue.ToString & "'", "null"),
                                        "aspirante_fechaexpedicion = " & IIf(Trim(Me.dtpFechaexpedicion.Value.ToString("yyyy-MM-dd")) <> "", "'" & Me.dtpFechaexpedicion.Value.ToString("yyyy-MM-dd") & "'", "null"),
                                        "persona_lugarexpedicion = " & IIf(Trim(Me.cmbLugarexpedicion.SelectedValue.ToString) <> "", "'" & Me.cmbLugarexpedicion.SelectedValue.ToString & "'", "null")}
        Dim strCondicion As String = "persona_id = " & IIf(Trim(Me.intIdpersona.ToString) <> "", "'" & Me.intIdpersona.ToString & "'", "null")
        mdlCRUD.updRecordnomsg("persona", arrParametro, strCondicion)

        If mdlCRUD.blnFlag = True Then
            Dim arrParametroAsp() As String = {"persona_id = " & IIf(Trim(Me.intIdpersona.ToString) <> "", "'" & Me.intIdpersona.ToString & "'", "null"),
                                            "ciudad_residencia = " & IIf(Trim(Me.cmbUbicacionresidencia.SelectedValue.ToString) <> "", "'" & Me.cmbUbicacionresidencia.SelectedValue.ToString & "'", "null"),
                                            "aspirante_direccion = " & IIf(Trim(Me.txtDireccion.Text) <> "", "'" & Me.txtDireccion.Text & "'", "null"),
                                            "aspirante_correoelectronico = " & IIf(Trim(Me.txtCorreoelectronico.Text) <> "", "'" & Me.txtCorreoelectronico.Text & "'", "null"),
                                            "nivelescolaridad_id = " & IIf(Trim(Me.cmbGradoescolaridad.SelectedValue.ToString) <> "", "'" & Me.cmbGradoescolaridad.SelectedValue.ToString & "'", "null"),
                                            "ocupacion_id = " & IIf(Trim(Me.cmbGradoescolaridad.SelectedValue.ToString) <> "", "'" & Me.cmbGradoescolaridad.SelectedValue.ToString & "'", "null"),
                                            "estadocivil_id = " & IIf(Trim(Me.cmbEstadocivil.SelectedValue.ToString) <> "", "'" & Me.cmbEstadocivil.SelectedValue.ToString & "'", "null"),
                                            "aspirante_movil = " & IIf(Trim(Me.txtMovil.Text) <> "", "'" & Me.txtMovil.Text & "'", "null"),
                                            "aspirante_telefono = " & IIf(Trim(Me.txtTelefono.Text) <> "", "'" & Me.txtTelefono.Text & "'", "null"),
                                            "aspirante_nombreacompanante = " & IIf(Trim(Me.txtNombreacompañante.Text) <> "", "'" & Me.txtNombreacompañante.Text & "'", "null"),
                                            "aspirante_telefonoacompanante = " & IIf(Trim(Me.txtTelefonoacompañante.Text) <> "", "'" & Me.txtTelefonoacompañante.Text & "'", "null"),
                                            "epsarp_id = " & IIf(Trim(Me.cmbEpsarp.SelectedValue.ToString) <> "", "'" & Me.cmbEpsarp.SelectedValue.ToString & "'", "null"),
                                            "aspirante_senialesparticulares = " & IIf(Trim(Me.txtSenialesparticulares.Text) <> "", "'" & Me.txtSenialesparticulares.Text & "'", "null"),
                                            "aspirante_observacion = " & IIf(Trim(Me.txtObservacion.Text) <> "", "'" & Me.txtObservacion.Text & "'", "null")}
            Dim strCondicionAsp As String = "aspirante_id = " & IIf(Trim(Me.intIdaspirante.ToString) <> "", "'" & Me.intIdaspirante.ToString & "'", "null")
            mdlCRUD.updRecordnomsg("aspirante", arrParametroAsp, strCondicionAsp)

            If mdlCRUD.blnFlag = True Then
                MsgBox("Grabado Exitoso", MsgBoxStyle.Information, "CRC")
            End If
        End If
    End Sub

    Private Sub dtpFechanacimiento_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtpFechanacimiento.ValueChanged
        Me.txtEdad.Text = mdlFunciones.getEdad(Me.dtpFechanacimiento.Value)
    End Sub
End Class